import book.BookList;
import user.AdminUser;
import user.NormalUser;
import user.User;

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: LXW
 * Date: 2021-12-09
 * Time: 13:15
 */
public class Main {
    public static User login () {
        System.out.println("请输入您的姓名");
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();
        System.out.println("请输入您的身份（1表示管理员，2表示普通用户）");
        int choice = scanner.nextInt();
        if (choice == 1) {
            return new AdminUser(name);   // 如果输入1，new一个管理员的对象并返回
        }else {
            return new NormalUser(name);  //如果输入2，new一个普通用户的对象并返回
        }
    }
    public static void main(String[] args) {
        BookList booklist = new BookList();  // 只要一new了BookList就生成了那三本书

            User user = login();  // 向上转型：调用login函数并接收子类（普通用户或管理员用户）的对象
        while (true) {    // 通过while让程序一直运行
            int choice = user.menu(); // 动态绑定：user访问本身的menu函数，这时进行了重写，上面login返回的是哪个对象，那就对哪个对象的方法重写。
                                        // 进入到对应的menu菜单后，返回了一个choice，通过这个选择进行对应指定的操作
            // 根据choice来进行对应的操作
            user.doWork(choice, booklist);  // 把choice和刚new的BookList传过去
        }
    }



}
